package com.hxc.shop.mapper.Mysql;

import com.hxc.shop.bean.ShopUserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface UserMapper {

    /**
     * @param userName 用户名
     * 查找是否有注册记录
     * */
    String getUserNameRecord(@Param("userName")String userName);

    /**
     * @param user 用户信息实体
     *  插入注册数据
     * */
    void insertRegistrationInfo(@Param("user")ShopUserInfo user);

    /**
     * @param userName 用户名
     * @param passWord 密码
     * 根据用户名和密码判断登录信息是否正确
     * */
    String getTrueUserLoginInfo(@Param("userName")String userName,@Param("passWord")String passWord);

    /**
     * @param userName 用户名
     * 根据用户名获取用户信息
     * */
    ShopUserInfo getUserInfoByUserName(@Param("userName")String userName);

    /**
     * @param user 用户信息实体
     *  根据用户名修改用户信息
     * */
    void updateUserInfoByUserName(@Param("user")ShopUserInfo user);

    /**
     * @param userName 用户名
     * 根据用户名获取原本密码
     * */
    String getOrigianlPassWordByUserName(@Param("userName")String userName);

    /**
     * @param userName
     * 检查是否有该用户名
     * */
    String findUserNameByUserName(@Param("userName")String userName);

    /**
     * @param userName 用户名
     * @param passWord 修改后的密码
     * */
    void updateUserPassWord(@Param("userName")String userName,@Param("passWord")String passWord);

    /**
     * @param userName 用户名
     * 获取用户余额
     * */
    Double getUserBlance(@Param("userName")String userName);

    /**
     * @param userName 用户名
     * @param blance 充值后的余额
     * @param updateTime 更新时间
     * */
    void updateUserBlance(@Param("userName")String userName,@Param("blance")Double blance,@Param("updateTime")String updateTime);

    /**
     * @param userName 用户名
     * @param isAdmin 权限
     * @param updateTime 更新时间
     * 修改用户权限
     * */
    void updateUserAuth(@Param("userName")String userName,@Param("isAdmin")Integer isAdmin,@Param("updateTime")String updateTime);

    /**
     * @param userName 用户名
     *  删除用户
     * */
    void deleteUser(@Param("userName")String userName);

}
